def match_hexagrams(gua):
    hexagrams = {
        "乾卦": "乾为天 乾上乾下, 乾：元，亨，利，贞。",
        "坤卦": "坤为地 坤上坤下, 坤：元亨，利牝马之贞。君子有攸往，先迷后得主。利西南得朋，东北丧朋。安贞吉。",
        "屯卦": "水雷屯 坎上震下, 屯：元亨，利贞。勿用有攸往，利建侯。",
        "蒙卦": "山水蒙 艮上坎下, 蒙：亨。匪我求童蒙，童蒙求我。初筮告，再三渎，渎则不告。利贞。",
        "需卦": "水天需 坎上乾下, 需：有孚，光亨，贞吉。利涉大川。",
        "讼卦": "天水讼 乾上坎下, 讼：有孚窒惕，中吉，终凶。利见大人，不利涉大川。",
        "师卦": "地水师 坤上坎下, 师：贞，丈人吉，无咎。",
        "比卦": "水地比 坎上坤下, 比：吉。原筮，元永贞，无咎。不宁方来，后夫凶。",
        "小畜卦": "风天小畜 巽上乾下, 小畜：亨。密云不雨，自我西郊。",
        "履卦": "天泽履 乾上兑下, 履：履虎尾，不咥人，亨。",
        "泰卦": "地天泰 坤上乾下, 泰：小往大来，吉，亨。",
        "否卦": "天地否 乾上坤下, 否：否之匪人，不利君子贞，大往小来。",
        "同人卦": "天火同人 乾上离下, 同人：同人于野，亨。利涉大川，利君子贞。",
        "大有卦": "火天大有 离上乾下, 大有：元亨。",
        "谦卦": "地山谦 坤上艮下, 谦：亨。君子有终。",
        "豫卦": "雷地豫 震上坤下, 豫：利建侯行师。",
        "随卦": "泽雷随 兑上震下, 随：元亨，利贞，无咎。",
        "蛊卦": "山风蛊 艮上巽下, 蛊：元亨，利涉大川。先甲三日，后甲三日。",
        "临卦": "地泽临 坤上兑下, 临：元，亨，利，贞。至于八月有凶。",
        "观卦": "风地观 巽上坤下, 观：盥而不荐，有孚顒若。",
        "噬嗑卦": "火雷噬嗑 离上震下, 噬嗑：亨。利用狱。",
        "贲卦": "山火贲 艮上离下, 贲：亨。小利有攸往。",
        "剥卦": "山地剥 艮上坤下, 剥：不利有攸往。",
        "复卦": "地雷复 坤上震下, 复：亨。出入无疾，朋来无咎。反复其道，七日来复。利有攸往。",
        "无妄卦": "天雷无妄 乾上震下, 无妄：元，亨，利，贞。其匪正有眚，不利有攸往。",
        "大畜卦": "山天大畜 艮上乾下, 大畜：利贞。不家食，吉。利涉大川。",
        "颐卦": "山雷颐 艮上震下, 颐：贞吉。观颐，自求口实。",
        "大过卦": "泽风大过 兑上巽下, 大过：栋挠，利有攸往，亨。",
        "坎卦": "坎为水 坎上坎下, 坎：习坎，有孚，维心亨，行有尚。",
        "离卦": "离为火 离上离下, 离：利贞，亨。畜牝牛，吉。",
        "咸卦": "泽山咸 兑上艮下, 咸：亨，利贞。取女吉。",
        "恒卦": "雷风恒 震上巽下, 恒：亨，无咎。利贞，利有攸往。",
        "遁卦": "天地遁 乾上坤下, 遁：亨。小利贞。",
        "大壮卦": "雷天大壮 震上乾下, 大壮：利贞。",
        "晋卦": "火地晋 离上坤下, 晋：康侯用锡马蕃庶，昼日三接。",
        "明夷卦": "地火明夷 坤上离下, 明夷：利艰贞。",
        "家人卦": "风火家人 巽上离下, 家人：利女贞。",
        "睽卦": "火泽睽 离上兑下, 睽：小事吉。",
        "蹇卦": "水山蹇 坎上艮下, 蹇：利西南，不利东北。利见大人，贞吉。",
        "解卦": "雷水解 震上坎下, 解：利西南。无所往，其来复吉。有攸往，夙吉。",
        "损卦": "山泽损 艮上兑下, 损：有孚，元吉，无咎，可贞。利有攸往，曷之用，二簋可用享。",
        "益卦": "风雷益 巽上震下, 益：利有攸往，利涉大川。",
        "夬卦": "泽天夬 兑上乾下, 夬：扬于王庭，孚号，有厉，告自邑。不利即戎，利有攸往。",
        "姤卦": "天风姤 乾上巽下, 姤：女壮，勿用取女。",
        "萃卦": "泽地萃 兑上坤下, 萃：亨。王假有庙，利见大人，亨，利贞。用大牲，吉。利有攸往。",
        "升卦": "地风升 坤上巽下, 升：元亨。用见大人，勿恤。南征吉。",
        "困卦": "泽水困 兑上坎下, 困：亨。贞大人吉，无咎。有言不信。",
        "井卦": "水风井 坎上巽下, 井：改邑不改井，无丧无得。往来井井，汔至亦未繘井，羸其瓶，凶。",
        "革卦": "泽火革 兑上离下, 革：己日乃孚。元亨，利贞，悔亡。",
        "鼎卦": "火风鼎 离上巽下, 鼎：元吉，亨。",
        "震卦": "震为雷 震上震下, 震：亨。震来虩虩，笑言哑哑。震惊百里，不丧匕鬯。",
        "艮卦": "艮为山 艮上艮下, 艮：艮其背，不获其身。行其庭，不见其人。无咎。",
        "渐卦": "风山渐 巽上艮下, 渐：女归吉，利贞。",
        "归妹卦": "雷泽归妹 震上兑下, 归妹：征凶，无攸利。",
        "丰卦": "雷火丰 震上离下, 丰：亨。王假之，勿忧，宜日中。",
        "旅卦": "火山旅 离上艮下, 旅：小亨。旅贞吉。",
        "巽卦": "巽为风 巽上巽下, 巽：小亨。利有攸往，利见大人。",
        "兑卦": "兑为泽 兑上兑下, 兑：亨，利贞。",
        "涣卦": "风水涣 巽上坎下, 涣：亨。王假有庙，利涉大川，利贞。",
        "节卦": "水泽节 坎上兑下, 节：亨。苦节不可贞。",
        "中孚卦": "风泽中孚 巽上兑下, 中孚：豚鱼，吉。利涉大川，利贞。",
        "小过卦": "雷山小过 震上艮下, 小过：亨。利贞。可小事，不可大事。飞鸟遗之音，不宜上，宜下，大吉。",
        "既济卦": "水火既济 坎上离下, 既济：亨小，利贞。初吉终乱。",
        "未济卦": "火水未济 离上坎下, 未济：亨。小狐汔济，濡其尾，无攸利。"
    }

    return {gua:hexagrams[gua]}


def assemble_query(gua):
    guaxiang = match_hexagrams(gua=gua)
    return str(guaxiang)

def assemble_prompt(qigua,gua,biangua,yao,query,question):
    
    prompt = f'''
    起卦如下：
    {qigua}
    
    卦象如下：
    {gua}
    
    变卦如下：
    {biangua}
    
    动爻如下：
    {yao}
    
    卦象参考：
    {query}
    
    需要你帮我测算的问题如下：
    {question}
    '''
    
    return prompt